 /**
 * 逻辑、功能相关描述: <br>
 *
 * @author 付湘辉  <br>
 * 编写日期：2008-8-29  <br>
 */
package com.ce.pms.charge.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.ce.pms.common.util.BigDecimalUtil;

/**
 * 	名称: com.ce.pms.charge.vo.CreditTransVO <br>
 *
 *
 * @author  付湘辉  <br>
 * Created on： 2008-8-29 <br>
 * @author <br>
 * update on： <br>
 * why: <br>
 */
public class CreditTransVO extends AbstractTransVO {

	/**
	 * long：serialVersionUID
	 */
	private static final long serialVersionUID = -4054141954443770725L;

	/**
	 * 收费日期(作为凭证填制日期)
	 */
	protected Date chargeDate;

	/**
	 * 子支付交易列表
	 */
	protected List<TransactionVO> childrenList;

	/**
	 * 子支付交易集合
	 */
	protected Set<CreditTransVO> childrens = new HashSet<CreditTransVO>();

	/**
	 * 贷方金额
	 */
	protected BigDecimal credit = BigDecimalUtil.getZEROInstance();

	/**
	 * 支付的应收交易集合
	 */
	protected Set<DebitTransVO> debits = new HashSet<DebitTransVO>();

	/**
	 * 支付的应收交易列表
	 */
	protected List<TransactionVO> debitsList;

	/**
	 * 管理区编号
	 */
	protected String precinctCode;

	/**
	 * 凭证Id
	 */
	protected Long voucherId;

	/**
	 * 凭证号前缀
	 */
	protected String voucherNoPrefix;

	/**
	 * 凭证号码
	 */
	protected String voucherNumber;

	/**
	 * 
	 */
	public CreditTransVO() {
		super();
	}

	/**
	 * 新增一个交易(实收)的构造器
	 * @param accountHouseId 账户所属房屋ID
	 * @param businessId 交易码ID
	 * @param creator 创建人ID
	 * @param childrens 子支付集，如果不是多重支付，可为空
	 * @param credit 实收金额(贷方)
	 * @param debits 对应的应收集合，集合中是DebitTransVO对象集合
	 */
	public CreditTransVO(Long accountHouseId, Long businessId, Long creator, Set<CreditTransVO> childrens, BigDecimal credit, Set<DebitTransVO> debits) {
		super(accountHouseId, businessId, creator);
		this.childrens = childrens;
		this.credit = credit;
		this.debits = debits;
	}

	public Date getChargeDate() {
		return chargeDate;
	}

	public List<TransactionVO> getChildrenList() {
		return childrenList;
	}

	public Set<CreditTransVO> getChildrens() {
		return childrens;
	}

	/**
	 * @return 贷方金额
	 */
	public BigDecimal getCredit() {
		return credit;
	}

	public Set<DebitTransVO> getDebits() {
		return debits;
	}

	public List<TransactionVO> getDebitsList() {
		return debitsList;
	}

	public String getPrecinctCode() {
		return precinctCode;
	}

	/**
	 * @return 凭证Id
	 */
	public Long getVoucherId() {
		return voucherId;
	}

	public String getVoucherNoPrefix() {
		return voucherNoPrefix;
	}

	/**
	 * @return 凭证号码
	 */
	public String getVoucherNumber() {
		return voucherNumber;
	}

	public void setChargeDate(Date chargeDate) {
		this.chargeDate = chargeDate;
	}

	public void setChildrenList(List<TransactionVO> childrenList) {
		this.childrenList = childrenList;
	}

	public void setChildrens(Set<CreditTransVO> childrens) {
		this.childrens = childrens;
	}

	/**
	 * @param 贷方金额 to set
	 */
	public void setCredit(BigDecimal credit) {
		this.credit = credit;
	}

	public void setDebits(Set<DebitTransVO> debits) {
		this.debits = debits;
	}

	public void setDebitsList(List<TransactionVO> debitsList) {
		this.debitsList = debitsList;
	}

	public void setPrecinctCode(String precinctCode) {
		this.precinctCode = precinctCode;
	}

	/**
	 * @param 凭证Id to set
	 */
	public void setVoucherId(Long voucherId) {
		this.voucherId = voucherId;
	}

	public void setVoucherNoPrefix(String voucherNoPrefix) {
		this.voucherNoPrefix = voucherNoPrefix;
	}

	/**
	 * @param 凭证号码 to set
	 */
	public void setVoucherNumber(String voucherNumber) {
		this.voucherNumber = voucherNumber;
	}

}
